home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / DELPHI32 / GRAPHICS / SCGRAPH / PLOTTING.PAS < prev    next >
Pascal/Delphi Source File  |  1996-11-07  |  10KB  |  375 lines

  1. unit Plotting;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Menus, ExtCtrls, ScGraph;
  8.  
  9. type
  10.   TPlottingForm = class(TForm)
  11.     MainMenu1: TMainMenu;
  12.     Color1: TMenuItem;
  13.     Mode1: TMenuItem;
  14.     Symbols1: TMenuItem;
  15.     LineStyle1: TMenuItem;
  16.     Widthup1: TMenuItem;
  17.     Widthdown1: TMenuItem;
  18.     N1: TMenuItem;
  19.     Solid1: TMenuItem;
  20.     Dashed1: TMenuItem;
  21.     DashDot1: TMenuItem;
  22.     DashDotDot1: TMenuItem;
  23.     Dotted1: TMenuItem;
  24.     ScGraph1: TScGraph;
  25.     Lines2: TMenuItem;
  26.     Histogram1: TMenuItem;
  27.     Sticks1: TMenuItem;
  28.     ColorDialog1: TColorDialog;
  29.     SizeUp1: TMenuItem;
  30.     SizeDown1: TMenuItem;
  31.     N2: TMenuItem;
  32.     Square1: TMenuItem;
  33.     FilledSquare1: TMenuItem;
  34.     Diamond1: TMenuItem;
  35.     FilledDiamond1: TMenuItem;
  36.     Triangleup1: TMenuItem;
  37.     Triangledown1: TMenuItem;
  38.     Filledtriangleup1: TMenuItem;
  39.     Filledtrinagledown1: TMenuItem;
  40.     Cross1: TMenuItem;
  41.     HatchedCross1: TMenuItem;
  42.     Circle1: TMenuItem;
  43.     Filledcircle1: TMenuItem;
  44.     File1: TMenuItem;
  45.     Print1: TMenuItem;
  46.     Edit1: TMenuItem;
  47.     CopyGraph1: TMenuItem;
  48.     N3: TMenuItem;
  49.     Exit1: TMenuItem;
  50.     Close1: TMenuItem;
  51.     Printersetup1: TMenuItem;
  52.     Symbols2: TMenuItem;
  53.     Plotlines1: TMenuItem;
  54.     N4: TMenuItem;
  55.     Autometrics1: TMenuItem;
  56.     Help1: TMenuItem;
  57.     procedure FormCreate(Sender: TObject);
  58.     procedure ScGraph1Resize(Sender: TObject);
  59.     procedure FormResize(Sender: TObject);
  60.     procedure Solid1Click(Sender: TObject);
  61.     procedure Dashed1Click(Sender: TObject);
  62.     procedure Dotted1Click(Sender: TObject);
  63.     procedure DashDot1Click(Sender: TObject);
  64.     procedure DashDotDot1Click(Sender: TObject);
  65.     procedure Widthup1Click(Sender: TObject);
  66.     procedure Widthdown1Click(Sender: TObject);
  67.     procedure Lines2Click(Sender: TObject);
  68.     procedure Histogram1Click(Sender: TObject);
  69.     procedure Sticks1Click(Sender: TObject);
  70.     procedure Color1Click(Sender: TObject);
  71.     procedure SizeUp1Click(Sender: TObject);
  72.     procedure SizeDown1Click(Sender: TObject);
  73.     procedure Square1Click(Sender: TObject);
  74.     procedure FilledSquare1Click(Sender: TObject);
  75.     procedure Diamond1Click(Sender: TObject);
  76.     procedure FilledDiamond1Click(Sender: TObject);
  77.     procedure Triangleup1Click(Sender: TObject);
  78.     procedure Triangledown1Click(Sender: TObject);
  79.     procedure Filledtriangleup1Click(Sender: TObject);
  80.     procedure Filledtrinagledown1Click(Sender: TObject);
  81.     procedure HatchedCross1Click(Sender: TObject);
  82.     procedure Cross1Click(Sender: TObject);
  83.     procedure Circle1Click(Sender: TObject);
  84.     procedure Filledcircle1Click(Sender: TObject);
  85.     procedure Close1Click(Sender: TObject);
  86.     procedure Exit1Click(Sender: TObject);
  87.     procedure CopyGraph1Click(Sender: TObject);
  88.     procedure Print1Click(Sender: TObject);
  89.     procedure Printersetup1Click(Sender: TObject);
  90.     procedure Symbols2Click(Sender: TObject);
  91.     procedure Plotlines1Click(Sender: TObject);
  92.     procedure Autometrics1Click(Sender: TObject);
  93.     procedure Help1Click(Sender: TObject);
  94.     procedure FormDestroy(Sender: TObject);
  95.   private
  96.     { Private declarations }
  97.   public
  98.     { Public declarations }
  99.   end;
  100.  
  101. var
  102.   PlottingForm: TPlottingForm;
  103.   PlottingText: TStringList;
  104.  
  105. const
  106.   lLines : boolean = true;
  107.   lw: integer = 3;
  108.   lStyle: TPenStyle = psSolid;
  109.   lColor: TColor = clRed;
  110.   lMode: pmPlotMode = pmLine;
  111.   lSymbs: boolean = true;
  112.   lSymb: etPointShape = psCircle;
  113.   lSymbSize: integer = 12;
  114.  
  115. implementation
  116.  
  117. uses DemoMain, Help;
  118.  
  119. {$R *.DFM}
  120.  
  121. procedure TPlottingForm.FormCreate(Sender: TObject);
  122. var i: integer;
  123. begin
  124.   ScGraph1Resize(Self);
  125.   with ScGraph1 do
  126.   begin
  127.     Plotting := false;
  128.     SetSeries(1, true, true, lColor, 'Series #1');
  129.     for i := 1 to 20 do AddPoint(1, i/2, 10*random);
  130.     SetSeriesLine(1, lLines, lMode, lw, lStyle);
  131.     SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  132.     Plotting := true;
  133.   end;
  134.  
  135.   PlottingText := TStringList.Create;
  136.   with PlottingText do begin
  137.    Add(' Edit  : Copy Graph - copies graph to clipboard');
  138.    Add('         Autometrics- autoadjust various sizes,');
  139.    Add('         line widths and distances');
  140.    Add(' Color : sets color of lines and symbols');
  141.    Add(' Mode  : choose symbols and/or lines');
  142.    Add('         Lines/Histogram/Sticks - plotting modes');
  143.    Add(' Symbols  : choose symbol type and size');
  144.    Add(' LineStyle: choose linewidth and line pattern');
  145.    Add(' ');
  146.    Add('  (see also ScGraph.txt for further properties)');
  147.   end;
  148. end;
  149.  
  150. procedure TPlottingForm.FormDestroy(Sender: TObject);
  151. begin
  152.   PlottingText.Free;
  153. end;
  154.  
  155. procedure TPlottingForm.ScGraph1Resize(Sender: TObject);
  156. begin
  157.   ScGraph1.Left := 10;
  158.   ScGraph1.Top := 10;
  159.   ScGraph1.Width := ClientWidth - 20;
  160.   ScGraph1.Height := ClientHeight - 20;
  161. end;
  162.  
  163. procedure TPlottingForm.FormResize(Sender: TObject);
  164. begin
  165.   ScGraph1Resize(Self);
  166. end;
  167.  
  168. procedure TPlottingForm.Solid1Click(Sender: TObject);
  169. begin
  170.   lStyle := psSolid;
  171.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  172. end;
  173.  
  174. procedure TPlottingForm.Dashed1Click(Sender: TObject);
  175. begin
  176.   lStyle := psDash;
  177.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  178. end;
  179.  
  180. procedure TPlottingForm.Dotted1Click(Sender: TObject);
  181. begin
  182.   lStyle := psDot;
  183.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  184. end;
  185.  
  186. procedure TPlottingForm.DashDot1Click(Sender: TObject);
  187. begin
  188.   lStyle := psDashDot;
  189.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  190. end;
  191.  
  192. procedure TPlottingForm.DashDotDot1Click(Sender: TObject);
  193. begin
  194.   lStyle := psDashDotDot;
  195.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  196. end;
  197.  
  198. procedure TPlottingForm.Widthup1Click(Sender: TObject);
  199. begin
  200.   lw := lw + 1;
  201.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  202. end;
  203.  
  204. procedure TPlottingForm.Widthdown1Click(Sender: TObject);
  205. begin
  206.   if lw > 0 then lw := lw - 1;
  207.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  208. end;
  209.  
  210. procedure TPlottingForm.Lines2Click(Sender: TObject);
  211. begin
  212.   lMode := pmLine;
  213.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  214. end;
  215.  
  216. procedure TPlottingForm.Histogram1Click(Sender: TObject);
  217. begin
  218.   lMode := pmHisto;
  219.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  220. end;
  221.  
  222. procedure TPlottingForm.Sticks1Click(Sender: TObject);
  223. begin
  224.   lMode := pmSticks;
  225.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  226. end;
  227.  
  228. procedure TPlottingForm.Color1Click(Sender: TObject);
  229. begin
  230.   ColorDialog1.Execute;
  231.   lColor := ColorDialog1.Color;
  232.   ScGraph1.SetSeries(1, true, false, lColor, 'Series #1');
  233. end;
  234.  
  235. //////////////////
  236. procedure TPlottingForm.SizeUp1Click(Sender: TObject);
  237. begin
  238.   lSymbSize := lSymbSize + 1;
  239.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  240. end;
  241.  
  242. procedure TPlottingForm.SizeDown1Click(Sender: TObject);
  243. begin
  244.   if lSymbSize > 0 then lSymbSize := lSymbSize - 1;
  245.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  246. end;
  247.  
  248. procedure TPlottingForm.Square1Click(Sender: TObject);
  249. begin
  250.   lSymb := psSquare;
  251.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  252. end;
  253.  
  254. procedure TPlottingForm.FilledSquare1Click(Sender: TObject);
  255. begin
  256.   lSymb := psSquareFilled;
  257.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  258. end;
  259.  
  260. procedure TPlottingForm.Diamond1Click(Sender: TObject);
  261. begin
  262.   lSymb := psDiamond;
  263.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  264. end;
  265.  
  266. procedure TPlottingForm.FilledDiamond1Click(Sender: TObject);
  267. begin
  268.   lSymb := psDiamondFilled;
  269.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  270. end;
  271.  
  272. procedure TPlottingForm.Triangleup1Click(Sender: TObject);
  273. begin
  274.   lSymb := psTriangleUp;
  275.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  276. end;
  277.  
  278. procedure TPlottingForm.Triangledown1Click(Sender: TObject);
  279. begin
  280.   lSymb := psTriangleDown;
  281.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  282. end;
  283.  
  284. procedure TPlottingForm.Filledtriangleup1Click(Sender: TObject);
  285. begin
  286.   lSymb := psTriangleUpFilled;
  287.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  288. end;
  289.  
  290. procedure TPlottingForm.Filledtrinagledown1Click(Sender: TObject);
  291. begin
  292.   lSymb := psTriangleDownFilled;
  293.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  294. end;
  295.  
  296. procedure TPlottingForm.HatchedCross1Click(Sender: TObject);
  297. begin
  298.   lSymb := psHCross;
  299.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  300. end;
  301.  
  302. procedure TPlottingForm.Cross1Click(Sender: TObject);
  303. begin
  304.   lSymb := psCross;
  305.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  306. end;
  307.  
  308. procedure TPlottingForm.Circle1Click(Sender: TObject);
  309. begin
  310.   lSymb := psCircle;
  311.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  312. end;
  313.  
  314. procedure TPlottingForm.Filledcircle1Click(Sender: TObject);
  315. begin
  316.   lSymb := psCircleFilled;
  317.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  318. end;
  319.  
  320. procedure TPlottingForm.Close1Click(Sender: TObject);
  321. begin
  322.   DemoForm.CloseWindow1Click(Self);
  323. end;
  324.  
  325. procedure TPlottingForm.Exit1Click(Sender: TObject);
  326. begin
  327.   DemoForm.Exit1Click(Self);
  328. end;
  329.  
  330. procedure TPlottingForm.CopyGraph1Click(Sender: TObject);
  331. begin
  332.   ScGraph1.CopyGraphToClipboard;
  333. end;
  334.  
  335. procedure TPlottingForm.Print1Click(Sender: TObject);
  336. begin
  337.   ScGraph1.PrintGraph(-1, -1, 140, 120);
  338. end;
  339.  
  340. procedure TPlottingForm.Printersetup1Click(Sender: TObject);
  341. begin
  342.   DemoForm.PrinterSetupDialog1.Execute;
  343. end;
  344.  
  345. procedure TPlottingForm.Symbols2Click(Sender: TObject);
  346. begin
  347.   Symbols2.Checked := Symbols2.Checked xor true;
  348.   lSymbs := Symbols2.Checked;
  349.   ScGraph1.SetSeriesPoints(1, lSymbs, lSymb, lSymbSize);
  350. end;
  351.  
  352. procedure TPlottingForm.Plotlines1Click(Sender: TObject);
  353. begin
  354.   PlotLines1.Checked := PlotLines1.Checked xor true;
  355.   lLines := PlotLines1.Checked;
  356.   ScGraph1.SetSeriesLine(1, lLines, lMode, lw, lStyle);
  357. end;
  358.  
  359. procedure TPlottingForm.Autometrics1Click(Sender: TObject);
  360. begin
  361.   ScGraph1.Autometrics := ScGraph1.Autometrics xor true;
  362.   Autometrics1.Checked := ScGraph1.Autometrics;
  363. end;
  364.  
  365. procedure TPlottingForm.Help1Click(Sender: TObject);
  366. begin
  367.   HelpForm.HelpMemo.Lines.Assign(PlottingText);
  368.   HelpForm.ShowModal;
  369. end;
  370.  
  371. end.
  372.  
  373.  
  374.  
  375.